Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.06.2017, 15:57
Новичок на форуме
Отправить личное сообщение для hittment Посмотреть профиль Найти все сообщения от hittment
 
Регистрация: 30.06.2017
Сообщений: 6

jquery ajax перестают отправляться GET-запросы
Привет гуру сего форума, у меня есть проблемка сути которой я никак не могу понять, пробовал даже через form.serialize то же самое, дело в том что у меня есть несколько полей:
<div class="textareadiv">
       <textarea id="text" name="Message" id="TextMessage" COLS="55" ROWS="2" placeholder="Текст сообщения...">
       </textarea>
</div>

<div class="buttonarea">
       <input id="sendmessbut" type="submit" name="SubmBtn" value="Отправить">
</div>

<input type="hidden" name="option1" id="opt1" value="'.md5($user->login).'">

<input type="hidden" name="option2" id="opt2" value="1">	  

<div id="MesError">&nbsp;</div>


Вот обработчик GET запроса:
$('#sendmessbut').click(function( e ){ 
	var message = $('#text').val();
	var opt1 = $('#opt1').val();
	var opt2 = $('#opt2').val();
	var requri = '../res/send.php?Message='+message+'&option1='+opt1+'&option2='+opt2;
			$.ajax({ 
			   type: 'GET', 
			   url: requri, 
			   dataType: 'json',
		       beforeSend: function(data) { 
		            $(this).attr('disabled', 'disabled');
		          },
		       success: function(data){    
		       		if (data['error']) { 
					$('#MesError').text(data['error']);
		       		} 
					else
					{
					$('#TextMessage').val('');
					$.ajax({ 
			                              type: 'GET', 
			                              url: '../res/msg.php?user='+user+'&reloadmsg', 
		                                      beforeSend: function(data) { 
		                                      $('#test').html('<div ".$loading."><img ".$src."></div>');
		                                                                               },
		                                      success: function(data){    
					                                      $('#test').html(data);
		                                                                        },
				 
		                                      complete: function(data) { 
		                                                               scrolling = $('.message');
				                                               $(scrolling).scrollTop(($(scrolling).prop('scrollHeight')));
				                                               $('#text').reset();
		                                                                            }       
			     });	
			   }
		         },
				 
		       complete: function(data) { 
		            $(this).prop('disabled', false);
		                                            }       
	            });
		e.preventDefault();
	});


Дело в том что если не трогать значение полей:
1) input name="option1"
2) input name="option2"
Все прекрасно работает, запрос отправляется, ответ приходит, однако стоит поменять значение в одном из вышеперечисленного поля запрос отправляется, но ответ перестает приходить.
Вопрос что я делаю не так (скажу что я не очень силен в jquery, но кой чего состряпать могу)?
Изображения:
Тип файла: jpg Снимок1.jpg (20.7 Кб, 3 просмотров)
Тип файла: jpg Снимок2.jpg (18.9 Кб, 1 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 30.06.2017, 16:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

id="text" name="Message" id="TextMessage"

Для уверенности?
Ответить с цитированием
  #3 (permalink)  
Старый 30.06.2017, 17:21
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

hittment,
Сообщение от hittment
поменять значение в одном из вышеперечисленного поля
Каким образом, если они hidden? и что вы туда вписываете?

Что за user в строке 22?

Сообщение от hittment
запрос отправляется, но ответ перестает приходить
Ну это скорее вопрос к обработчику запросов
Ответить с цитированием
  #4 (permalink)  
Старый 01.07.2017, 16:37
Новичок на форуме
Отправить личное сообщение для hittment Посмотреть профиль Найти все сообщения от hittment
 
Регистрация: 30.06.2017
Сообщений: 6

Сообщение от laimas Посмотреть сообщение
id="text" name="Message" id="TextMessage"

Для уверенности?
Спасибо за замечание, не заметил =)

Сообщение от Dilettante_Pro Посмотреть сообщение
hittment,

Каким образом, если они hidden? и что вы туда вписываете?

Что за user в строке 22?


Ну это скорее вопрос к обработчику запросов
В hidden у меня параметры которые нет надобности отображать, с помощью jquery изменяются значения.

Туда вписывается непосредственно логин юзера которому отправить сообщение

Последний раз редактировалось hittment, 01.07.2017 в 16:46.
Ответить с цитированием
  #5 (permalink)  
Старый 03.07.2017, 10:33
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

hittment,
Вы задаете вопрос, но не излагаете деталей. Причина может быть в какой-то мелочи.
Сообщение от hittment
с помощью jquery изменяются значения
Пример можно?
Сообщение от hittment
Туда вписывается непосредственно логин юзера которому отправить сообщение
А обработчик на сервере что делает с этим параметром?
Ответить с цитированием
  #6 (permalink)  
Старый 03.07.2017, 11:41
Новичок на форуме
Отправить личное сообщение для hittment Посмотреть профиль Найти все сообщения от hittment
 
Регистрация: 30.06.2017
Сообщений: 6

Сообщение от Dilettante_Pro Посмотреть сообщение
hittment,
Вы задаете вопрос, но не излагаете деталей. Причина может быть в какой-то мелочи.

Пример можно?

А обработчик на сервере что делает с этим параметром?

Я в скринах показал что происходит если с изначально выбранным юзером "переписыватся", и если кого то другого выбрать.
И я никак не пойму почему если в первом случае все работает нормально, то во втором перестает работать.

На сервере обработчик сверяет пришедшее значение со значением в БД.
Вот мое творение прошу сильно не критиковать ибо это мой первый сайт который я пишу, код обработчика:
<?php
include("setting.php");
header("Content-Type: text/json; charset=utf-8");
$json = array();
if(isset($_GET))
{
	// SendMessage($_POST['option1'],$_POST['Message'],$_POST['option2']);
		if($_GET['option1'] == $_SESSION['logged_user']->login)
	{
		$json['error'] = 'Ошибка, попытка отправить сообщение самому себе!';
		echo json_encode($json);
		die();
	}
$table = '';	
if($_GET['option2'] == 1)
$table = 'users';
if($_GET['option2'] == 2)
$table = 'employer';
if($_GET['option2'] == 3)
$table == 'admins';
if($table != '')
	{
		$query = "SELECT * FROM ".$table;
		$result = R::getall($query);
		$users = R::convertToBeans( $table, $result );
				
		foreach ($users as $curus)
		{
			if(md5($curus->login) == $_GET['option1'])
			$user = $curus;
		}
		if($user)
		{
			$row = R::findOne('dialogs', 'receive = ? AND send = ? OR receive = ? AND send = ?',
							array(
									md5($user->id.$user->login.$user->IsAdmin),
									md5($_SESSION['logged_user']->id.$_SESSION['logged_user']->login.$_SESSION['logged_user']->IsAdmin),
									md5($_SESSION['logged_user']->id.$_SESSION['logged_user']->login.$_SESSION['logged_user']->IsAdmin),
									md5($user->id.$user->login.$user->IsAdmin)
									)
							);
			if($row)//найден диалог
			{
				$did = $row->id;
				$row->status = 0;
				$row->send = md5($_SESSION['logged_user']->id.$_SESSION['logged_user']->login.$_SESSION['logged_user']->IsAdmin);
				$row->receive = md5($user->id.$user->login.$user->IsAdmin);
				R::store($row);
			}
			else// не найден диалог
			{
				$row = R::dispense('dialogs');
				$row->status = 0;
				$row->send = md5($_SESSION['logged_user']->id.$_SESSION['logged_user']->login.$_SESSION['logged_user']->IsAdmin);
				$row->receive = md5($user->id.$user->login.$user->IsAdmin);
				$did = R::store($row);
			}
		if(	$_GET['Message'] != "")
		{
		$msg = R::dispense('messages');	
		$msg->did = $did;
		$msg->user = md5($_SESSION['logged_user']->id.$_SESSION['logged_user']->login.$_SESSION['logged_user']->IsAdmin);
		$msg->message = $_GET['Message'];
		$msg->senddate = date("Y-m-d H:i:s");
		R::store($msg);
		$json['error'] = 0;
		echo json_encode($json);
		}
		else
		{
		$json['error'] = "Введите ссобщение!";
		echo json_encode($json);
		}

		}//endif $user==false
		else
		{
			$json['error'] = 'Пользователь не найден!';
			echo json_encode($json);
			die();
		}
	}
}
?>


Тут полная версия скринов:
1) http://u4enik.de/img/скрин1.png
2) http://u4enik.de/img/скрин2.png
Изображения:
Тип файла: jpg скрин1.jpg (15.3 Кб, 3 просмотров)
Тип файла: jpg скрин2.jpg (14.2 Кб, 0 просмотров)

Последний раз редактировалось hittment, 03.07.2017 в 11:50.
Ответить с цитированием
  #7 (permalink)  
Старый 03.07.2017, 11:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от hittment
if($_GET['option2'] == 1)
$table = 'users';
if($_GET['option2'] == 2)
$table = 'employer';
if($_GET['option2'] == 3)
$table == 'admins';
if($table != '')
$table = [1 => 'table_name1', 'table_name2', 'table_name3'];
if($table = $table[$_GET['option2']]) {
    //выполнение
} else echo 'идите лесом';
Ответить с цитированием
  #8 (permalink)  
Старый 03.07.2017, 18:02
Новичок на форуме
Отправить личное сообщение для hittment Посмотреть профиль Найти все сообщения от hittment
 
Регистрация: 30.06.2017
Сообщений: 6

Сообщение от laimas Посмотреть сообщение
$table = [1 => 'table_name1', 'table_name2', 'table_name3'];
if($table = $table[$_GET['option2']]) {
    //выполнение
} else echo 'идите лесом';
Не могли бы вы объяснить что делает первая строка?
Ответить с цитированием
  #9 (permalink)  
Старый 03.07.2017, 18:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от hittment
что делает первая строка?
А что у вас делают эти строки?

f($_GET['option2'] == 1)
$table = 'users';
if($_GET['option2'] == 2)
$table = 'employer';
if($_GET['option2'] == 3)
$table == 'admins';

Надо полагать задают имя таблицы, к которой будет запрос, если судить по запросу, так ведь? Зачем же эта писанина, если имена таблиц можно объявить массивом, начиная с ключа 1. Остается только проверить есть ли таблица запрашиваемая параметром $_GET['option2'], и если возвращает не NULL, выполняем запрос.
Ответить с цитированием
  #10 (permalink)  
Старый 03.07.2017, 19:52
Новичок на форуме
Отправить личное сообщение для hittment Посмотреть профиль Найти все сообщения от hittment
 
Регистрация: 30.06.2017
Сообщений: 6

Сообщение от laimas Посмотреть сообщение
$table = [1 => 'table_name1', 'table_name2', 'table_name3'];
if($table = $table[$_GET['option2']]) {
    //выполнение
} else echo 'идите лесом';
Сообщение от laimas Посмотреть сообщение
А что у вас делают эти строки?

f($_GET['option2'] == 1)
$table = 'users';
if($_GET['option2'] == 2)
$table = 'employer';
if($_GET['option2'] == 3)
$table == 'admins';

Надо полагать задают имя таблицы, к которой будет запрос, если судить по запросу, так ведь? Зачем же эта писанина, если имена таблиц можно объявить массивом, начиная с ключа 1. Остается только проверить есть ли таблица запрашиваемая параметром $_GET['option2'], и если возвращает не NULL, выполняем запрос.
Спасибо, интегрировал. Также я разобрался в чем ошибка, теперь все работает...

строки с 23 по 31 изменил на :
$users = R::findAll($table);
		foreach ($users as $curus => $value)
		{	
			if(strcmp(md5($users[$curus]->email) ,$_GET['option1']) ==0)
			{				
			$user = $users[$curus];
			}
		}

Последний раз редактировалось hittment, 03.07.2017 в 20:06.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ajax jQuery - нераспознанный конфликт Infinity178 jQuery 0 21.05.2017 06:46
Вложенные Ajax запросы Sherminator AJAX и COMET 10 03.10.2016 05:11
Книги по Ajax BaVa Учебные материалы 18 18.08.2013 14:05
Вопросик по AJAX (jQuery) Artsemi Общие вопросы Javascript 3 13.02.2013 11:24
старые(выполненые) ajax запросы archcoffe jQuery 7 03.05.2012 11:50